package com.opensms.eventLogFacade.dao;

import java.sql.Connection;
import java.util.Collection;

import com.opensms.eventLogFacade.vo.EventLogVO;
import com.util.exceptions.InstanceNotFoundException;
import com.util.exceptions.InternalErrorException;

public interface SQLEventLogDAO {
	/**
	 * Inserta un EventLog en la BD
	 * Devuelve el EventLog con su clave rellenada
	 * 
	 * @param vo
	 * @return
	 * @throws InternalErrorException
	 */
	public EventLogVO create(Connection connection, EventLogVO vo)
		throws InternalErrorException ;
	
	/**
	 * Devuelve un EventLog cuya clave corresponda con id
	 *  
	 * @param id
	 * @return
	 * @throws InternalErrorException
	 * @throws InstanceNotFoundException
	 */
	public EventLogVO findById(Connection connection, long id)
		throws InternalErrorException, InstanceNotFoundException;
	
	/**
	 * Devuelve la coleccion de EventLogVO del tipo type ordenados por fecha  
	 * @param type
	 * @return
	 */
	public Collection findByType(Connection connection, char type)
		throws InternalErrorException;

}
